package main

import "fmt"

//1.使用递归函数实现阶级
// 2!  2*1		 2 * 1!
// 3!  3*2*1	 3 * 2!
// 4!  4*3*2*1	 4 * 3！
// 5!  5*4*3*2*1 5 * 4！
func f1(n uint64) uint64{

	if n == 1{
		return 1
	}else {
		return n * f1(n-1)
	}
}

//2. 使用递归实现：有m个阶梯，每次走1个阶梯或者2个阶梯，有多少种组合能走完
func f2(m uint64) uint64 {
	if m == 1{
		return 1
	}else if m == 2{
		return 2
	}else {
		return f2(m-1) + f2(m-2)
	}
}

func main() {
	// 需求1
	re := f1(5)
	fmt.Println(re)
	// 需求2
	ce := f2(20)
	fmt.Println(ce)
}
